package cn.iocoder.yudao.framework.qrcode;

import cn.iocoder.yudao.framework.common.biz.config.ConfigCommonApi;
import cn.iocoder.yudao.framework.common.biz.file.FileCommonApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;

/**
 * 自动配置
 *
 * @author 山野羡民（1032694760@qq.com）
 */
@Slf4j
@AutoConfiguration
public class QrcodeAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public ConfigCommonApi configCommonApi() {
        return key -> {
            throw new UnsupportedOperationException("无效的 Bean(%s)，请检查是否引入了基建模块并实现了该接口！".formatted(ConfigCommonApi.class.getName()));
        };
    }

    @Bean
    @ConditionalOnMissingBean
    public FileCommonApi fileCommonApi() {
        return new FileCommonApi() {
            @Override
            public String createFile(String name, String path, byte[] content) {
                throw new UnsupportedOperationException("无效的 Bean(%s)，请检查是否引入了基建模块并实现了该接口！".formatted(FileCommonApi.class.getName()));
            }

            @Override
            public String createFile(byte[] content, String name, String directory, String type) {
                throw new UnsupportedOperationException("无效的 Bean(%s)，请检查是否引入了基建模块并实现了该接口！".formatted(FileCommonApi.class.getName()));
            }

            @Override
            public String getUrlByPath(String path) {
                throw new UnsupportedOperationException("无效的 Bean(%s)，请检查是否引入了基建模块并实现了该接口！".formatted(FileCommonApi.class.getName()));
            }
        };
    }

}
